layui.define(['jquery', 'element', 'layer'], function(exports) {
    var $ = layui.jquery,
        element = layui.element,
        layer = layui.layer;

    var currentModule = 'dashboard';

    function init() {
        bindEvents();
        loadModule('dashboard'); // 默认加载系统概览
        updateCurrentDate();
        loadStatistics();
    }

    function bindEvents() {
        // 导航菜单点击事件
        $('.layui-nav-item a').on('click', function() {
            var module = $(this).data('module');
            if (module) {
                currentModule = module;
                loadModule(module);
            }
        });

        // 退出登录
        $('#logoutBtn').on('click', function() {
            layer.confirm('确定要退出登录吗？', function(index) {
                $.post('/user/logout', function(res) {
                    if (res.code === 200) {
                        layer.msg('退出成功', {icon: 1});
                        // 返回首页
                        window.location.href = 'index.html';
                    } else {
                        layer.msg(res.message || '退出失败', {icon: 2});
                    }
                }).fail(function() {
                    layer.msg('网络错误，请稍后重试', {icon: 2});
                });
                layer.close(index);
            });
        });
    }

    function loadModule(moduleName) {
        var moduleMap = {
            'dashboard': '系统概览',
            'book': '图书管理',
            'borrow': '借阅管理',
            'category': '分类管理',
            'publisher': '出版社管理',
            'author': '作者管理',
            'user': '用户管理'
        };

        // 隐藏所有模块
        $('[id$="Module"]').hide();

        // 显示当前模块
        $('#' + moduleName + 'Module').show();

        // 更新导航状态
        $('.layui-nav-item').removeClass('layui-this');
        $('[data-module="' + moduleName + '"]').parent().addClass('layui-this');

        // 加载对应模块
        if (moduleName !== 'dashboard') {
            layui.use(moduleName, function() {
                var module = layui[moduleName];
                if (module && module.init) {
                    module.init();
                }
            });
        }
    }

    function updateCurrentDate() {
        var now = new Date();
        var options = {
            year: 'numeric',
            month: 'long',
            day: 'numeric',
            weekday: 'long'
        };
        var dateStr = now.toLocaleDateString('zh-CN', options);
        $('#currentDate').text(dateStr);
    }

    function loadStatistics() {
        // 加载统计数据
        $.get('/book/list', {pageSize: 1}, function(res) {
            if (res.code === 200 && res.data) {
                $('#totalBooks').text(res.data.total || 0);
            }
        });

        $.get('/user/list', {pageSize: 1}, function(res) {
            if (res.code === 200 && res.data) {
                $('#totalUsers').text(res.data.total || 0);
            }
        });

        $.get('/borrow/list', {pageSize: 1}, function(res) {
            if (res.code === 200 && res.data) {
                var borrowedCount = 0;
                var overdueCount = 0;

                if (res.data.records) {
                    res.data.records.forEach(function(item) {
                        if (item.status === 0) {
                            borrowedCount++;
                        } else if (item.status === 2) {
                            overdueCount++;
                        }
                    });
                }

                $('#borrowedBooks').text(borrowedCount);
                $('#overdueBooks').text(overdueCount);
            }
        });
    }

    exports('main', {
        init: init,
        loadModule: loadModule
    });
});